# -*- coding: latin-1 -*-
import sys
from PyQt4.QtCore import QDate,  SIGNAL,  QVariant,  QObject,  Qt
from PyQt4.QtGui import QDialog


sys.path.append("../")

from vista.principal_vista import Ui_FormPrincipal
from cliente_controlador import clientes_controlador
from historiaClinica_controlador import historiaClinica_controlador
from cronograma_controlador import cronograma_controlador
from modelo.cronograma_modelo import cronograma_modelo

DEBUG = False

class principal_controlador(Ui_FormPrincipal):
    def __init__(self):
        self.widget = QDialog()
        self.setupUi(self.widget)
        # Connections
        self.widget.connect(self.pushButtonClientes, SIGNAL("clicked()"), 
             		    self.clientes)
        self.widget.connect(self.pushButtonCronogramas, SIGNAL("clicked()"),
                            self.cronograma)
        self.mostrarTareas()
        self.ajustarDatosTabla()
    
    def ajustarDatosTabla(self):
        if DEBUG: print "Reajustando los datos de la tabla"
        self.tableView.resizeColumnsToContents()
        self.tableView.setHorizontalHeader(self.tableView.horizontalHeader().setStretchLastSection(True))
        
    def mostrarTareas(self):
        fecha=QDate.currentDate().toString("yyyy-MM-dd")
        self.cronograma=cronograma_modelo()
        self.cronograma.listarTareas(fecha)
        self.tableView.setModel(self.cronograma.model)
        self.tableView.setColumnHidden(self.cronograma.ID, True)
        self.tableView.setColumnHidden(self.cronograma.Fecha, True)


    def clientes(self):
        if DEBUG : print "apreto el boton cliente"
        self.ui = clientes_controlador()
        self.ui.widget.setAttribute(Qt.WA_DeleteOnClose)
        self.ui.widget.showMaximized()
        QObject.connect(self.ui.widget,  SIGNAL("destroyed()"), self.recargar)

 
    def cronograma(self):
        if DEBUG : print "apreto el boton cronograma"
        self.ui = cronograma_controlador(self.cronograma)
        # SETEO ESTE ATRIBUTO, PARA QUE CUANDO EL WIDGET SE CIERRE, SE BORRE DE MEMORIA, DE MODO QUE
        # SE EMITA LA SENAL DESTROYED()
        # VER http://www.riverbankcomputing.co.uk/static/Docs/PyQt4/html/qt.html#WidgetAttribute-enum
        self.ui.widget.setAttribute(Qt.WA_DeleteOnClose)
        self.ui.widget.showMaximized()
        QObject.connect(self.ui.widget,  SIGNAL("destroyed()"), self.recargar)
            
    def recargar(self):
        fecha=QDate.currentDate().toString("yyyy-MM-dd")
        self.cronograma.listarTareas(fecha)
